const fetch = require('./fetch.js')
/**
 * 小程序获取用户个人信息方法封装
 * 调用 setLoginPage 方法进行设置授权按钮所在的page路径
 * 调用 userInfo 方法就可会返回包含了用户信息的 promise 对象
 */
let account = {
  userInfo: '',
  preUrl: '',
  loginPage: ''
}
/**
 * 获取用户个人信息方法
 * @param refresh 是否需要重新请求微信, 刷新用户信息
 * @returns 包含了用户信息的 promise 对象
 */
const userInfo = refresh => {
  return new Promise((resolve, reject) => {
    if (account.userInfo && !refresh) {
      // 如果本次运行时已经获取到了用户信息, 且不需要刷新用户信息时, 直接返回相应信息
      resolve(account.userInfo)
    } else {
      const app = getApp()
      wx.getUserInfo({
        success (res) {
          // 如果用户已经授权, 可以获取到用户信息 直接保存并返回获取到相应信息
          account.userInfo = res
          var {encryptedData, iv, rawData, signature} = res
          fetch.post(app.globalData.config._domain + '/miniapp-user/update', {
            encryptedData,
            iv,
            userInfo: rawData,
            signature,
            applyid: 7
          }).then(res => {
            getApp().globalData.unionid = res.data.data.unionid
            setTimeout(() => resolve(res), 500)
          })
        },
        fail (res) {
          console.log(res)
        }
      })
    }
  })
}
export {
  userInfo
}
